
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.jasper.tagplugins.jstl.core.ForEach;

/**
 *
 * @author ebastos
 */
public class BeanCategoria implements Serializable {

    private int ID;
    private String nome;
    private int categoria_pai;
    private BeanCategoria pai;

    public BeanCategoria() {
    }

    public BeanCategoria(int ID) throws Exception {
        DAOCategoria banco = new DAOCategoria();
        BeanCategoria retorno = banco.RetornaCategoria(ID);
        this.ID = ID;
        this.nome = retorno.getNome();
    }

    public ArrayList<BeanCategoria> Listar() throws Exception {
        DAOCategoria banco = new DAOCategoria();
        return banco.RetornaCategorias();
    }

    public void Salvar(int ID, String nome) throws Exception {
        this.ID = ID;
        this.nome = nome;
        this.Salvar(this);
    }

    public void Salvar(BeanCategoria categoria) throws Exception {
        DAOCategoria banco = new DAOCategoria();
        if (categoria.getID() != 0 && null != banco.RetornaCategoria(categoria.getID())) {
            banco.Atualiza(categoria);
        } else {
            banco.Insere(categoria);
        }
    }

    public void Deleta(BeanCategoria categoria) throws Exception {
        DAOCategoria banco = new DAOCategoria();
        DAOSubCategoria subBanco = new DAOSubCategoria();
        for (BeanSubCategoria sub : subBanco.ListaPorCategoriaPai(categoria.getID())) {
            subBanco.Deleta(sub);
        }
        banco.Deleta(categoria);
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getCategoria_pai() {
        return categoria_pai;
    }

    public void setCategoria_pai(int ID) {
        this.categoria_pai = ID;
    }

    public BeanCategoria getPai() {
        return pai;
    }

    public void setPai(BeanCategoria pai) {
        this.categoria_pai = pai.getID();
        this.pai = pai;
    }
}
